other sections
NETLINK(3) | Linux Programmer's Manual | NETLINK(3) |
名前¶
netlink - netlink マクロ
書式¶
#include <asm/types.h>
#include <linux/netlink.h> int NLMSG_ALIGN(size_t len);
int NLMSG_LENGTH(size_t len);
int NLMSG_SPACE(size_t len);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int len);
int NLMSG_OK(struct nlmsghdr *nlh, int len);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int len);
説明¶
<linux/netlink.h> では、 netlink データグラムにアクセスしたり、これを作成するための 標準マクロがいくつか定義されている。 これらは cmsg(3) で定義されている補助データ (auxiliary data) 用のマクロと、 その精神において似ているものである。 netlink ソケットに対してやりとりされるバッファには、 必ずこれらのマクロを使ってアクセスすべきである。
- NLMSG_ALIGN
- netlink メッセージの長さを丸めて正しく揃える。
- NLMSG_LENGTH
- 格納領域 (payload) の長さ len を引数にとり、 nlmsghdr の nlmsg_len フィールドに代入できる 揃えられた長さ (aligned length) を返す。
- NLMSG_SPACE
- ペイロードの長さが len の netlink メッセージのバイト数を返す。
- NLMSG_DATA
- 与えた nlmsghdr に関連づけられた格納領域へのポインタを返す。
- NLMSG_NEXT
- マルチパートメッセージにおいて、次の nlmsghdr を入手する。これを呼び出すときには、 現在の nlmsghdr で NLMSG_DONE がセットされていないことを 確認しなければならない。この関数は終端で NULL を返さないからである。 len 引数はメッセージバッファの残り長さが入った左辺値である。 このマクロはこの引数からメッセージヘッダの長さ分を差し引く。
- NLMSG_OK
- Netlink メッセージが途切れておらず、パーズ可能であれば真を返す。
- NLMSG_PAYLOAD
- nlmsghdr に関連づけられた格納領域の長さを返す。
準拠¶
これらのマクロは非標準で Linux での拡張である。
注意¶
通常はカーネルの低レベルインターフェイスよりも、 libnetlink 経由で netlink を用いるほうが良い。
関連項目¶
netlink(7)
および libnetlink に関しては
ftp://ftp.inr.ac.ru/ip-routing/iproute2*
1999-05-14 | GNU |